package io.bdmc.modules.bss.controller;

import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import io.bdmc.common.annotation.SysLogger;
import io.bdmc.common.utils.MyMap;
import io.bdmc.common.utils.MyPage;
import io.bdmc.common.utils.R;
import io.bdmc.modules.bss.entity.SmkSmsconfig;
import io.bdmc.modules.bss.model.LabelValue;
import io.bdmc.modules.bss.service.ISmkSmsconfigService;
import io.bdmc.modules.sys.controller.AbstractController;
import java.time.LocalDateTime;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author HuangLu
 * @since 2019-07-05
 */
@RestController
@RequestMapping("/bss/config")
public class SmkSmsconfigController extends AbstractController{
    @Autowired
    private ISmkSmsconfigService _configSvs;

    // @Autowired
    // private QCloudSMS _smsSvs;

    @RequestMapping("/list")
	@RequiresPermissions("bss:config:list")
	public R list(Integer current,Integer size){
        MyPage<SmkSmsconfig> myPage = new MyPage<SmkSmsconfig>(current, size);
        MyPage<SmkSmsconfig> map = _configSvs.mySelectPage(myPage);
        MyMap<String, Object> s = MyMap.ok(map.getRecords(), map.getTotal());
		return R.ok().putData(s);
	}

    /**
	 * 新增推送配置
	 */
	@SysLogger("新增推送配置")
	@RequestMapping("/save")
	@RequiresPermissions("bss:config:save")
	public R save(@RequestBody SmkSmsconfig con){
		con.setDeptId(getDeptId());
        con.setCreateDate(LocalDateTime.now());
        con.setCreateBy(getUser().getUsername());
		Boolean b = con.insert();	
		return R.trueOfFalse(b);
    }

    /**
	 * 修改推送配置
	 */
	@SysLogger("修改推送配置")
	@RequestMapping("/update")
	@RequiresPermissions("bss:config:update")
	public R update(@RequestBody SmkSmsconfig con){
		Boolean b = con.updateById();
		return R.trueOfFalse(b);
    }

    
    /**
	 * 删除推送配置
	 */
    @SysLogger("删除推送配置")
	@RequestMapping("/delete")
	@RequiresPermissions("bss:config:delete")
	public R delete(@RequestBody long configId) {
		if(configId>0)
		_configSvs.removeById(configId);
		return R.ok();
    }

	@RequestMapping("/combo")
	//@RequiresPermissions("bss:config:list")
	public R combo() {
		MyPage<SmkSmsconfig> myPage = new MyPage<SmkSmsconfig>(1, 100);
		List<LabelValue> list = _configSvs.mySelectCombo(myPage);
		return R.ok().putData(list);
	}

    // /**
	//  * 测试推送短信
	//  */
    // @SysLogger("测试推送短信")
	// @RequestMapping("/sms_test")
	// @RequiresPermissions("bss:config:sms")
	// public R testPushSMS(@RequestBody String mobile) {
		
	// 	return R.ok();
    // }

    // /**
	//  * 测试推送语音
	//  */
    // @SysLogger("测试推送语音")
	// @RequestMapping("/voice_test")
	// @RequiresPermissions("bss:config:sms")
	// public R testPushVoice(@RequestBody String mobile) {
	// 	_smsSvs.smsBatchSend(mobiles, template_id, params, detail);
	// 	return R.ok();
    // }
}

